﻿using System;
using System.Collections.Generic;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using YJKRoomInspection.ProgramArchitecture;
using YJKRevitBase.WinForm;

namespace YJKRoomInspection.Utiltiy
{
	public static class StaticRescource
	{
		public static void Reset()
		{
			StaticRescource.m_bRunTag = false;
			StaticRescource.m_ifHasUse = false;
			StaticRescource.m_NowUseAppendCheckManger = null;
			StaticRescource.cmdData = null;
			StaticRescource.m_hWndSelectFloorForm = null;
			StaticRescource.m_hWndFrontRoomListForm = null;
			StaticRescource.m_hWndRevit = null;
			StaticRescource.m_AllLevels = null;
			StaticRescource.m_SelectLevels = null;
		}

		internal static string[] FrontRoomTypes
		{
			get
			{
				return StaticRescource.frontRoomtypes;
			}
		}

		internal static string[] BuildingTypes
		{
			get
			{
				return StaticRescource.buildingtypes;
			}
		}

		internal static string[] m_FireLevel
		{
			get
			{
				return StaticRescource.fireLevel;
			}
		}

		internal static string[] TypeArrtibuteNames
		{
			get
			{
				return StaticRescource.typeAttributeNames;
			}
		}

		internal static string[] StandardAttributeNames
		{
			get
			{
				return StaticRescource.standardAttributeNames;
			}
		}

		internal static string TypeXmlName
		{
			get
			{
				return StaticRescource.typeXmlName;
			}
		}

		internal static string StandardXmlName
		{
			get
			{
				return StaticRescource.standardXmlName;
			}
		}

		internal static string ParamXmlPath
		{
			get
			{
				return StaticRescource.paramXmlPath;
			}
			set
			{
				StaticRescource.paramXmlPath = value;
			}
		}

		public static ExternalCommandData CmdData
		{
			get
			{
				return StaticRescource.cmdData;
			}
			set
			{
				StaticRescource.cmdData = value;
			}
		}

		public static bool IfHasUse
		{
			get
			{
				return StaticRescource.m_ifHasUse;
			}
			set
			{
				StaticRescource.m_ifHasUse = value;
			}
		}

		public static IFlowYJKRoomInspection NowUseAppendCheckManger
		{
			get
			{
				return StaticRescource.m_NowUseAppendCheckManger;
			}
			set
			{
				StaticRescource.m_NowUseAppendCheckManger = value;
			}
		}

		public static bool m_bRunTag = false;

		private static bool m_ifHasUse = false;

		private static IFlowYJKRoomInspection m_NowUseAppendCheckManger = null;

		private static ExternalCommandData cmdData = null;

        public static WindowHandle m_hWndSelectFloorForm = null;

        public static WindowHandle m_hWndFrontRoomListForm = null;

        public static WindowHandle m_hWndRevit = null;

		public static List<Level> m_AllLevels = null;

		public static List<Level> m_SelectLevels = null;

		public static double m_OutDoorVal = 5.0;

		private static string[] typeAttributeNames = new string[]
		{
			"StairDoor",
			"FireProofDoor",
			"FireLadderDoor"
		};

		private static string[] standardAttributeNames = new string[]
		{
			"Area",
			"ShortSide"
		};

		private static string[] frontRoomtypes = new string[]
		{
			"特殊合用前室",
			"合用前室",
			"前室"
		};

		private static string[] buildingtypes = new string[]
		{
			"住宅",
			"公建"
		};

		private static string[] fireLevel = new string[]
		{
			"甲级",
			"乙级"
		};

		private static string typeXmlName = "\\FrontChamberType.xml";

		private static string standardXmlName = "\\FrontChamberStandard.xml";

		private static string paramXmlPath = "C:\\Hongye\\YJKArch2016\\Data\\";
	}
}
